﻿// 3550. Special数.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
#include <unordered_set>
#include <cmath>
#include <vector>
using namespace std;
/*
https://www.acwing.com/problem/content/3553/

设一个正整数既是平方数又是立方数时，称之为 Special 数。

输入整数 n，请你计算 1到 n中包含的所有 Special 数的个数。

输入格式
第一行包含整数 T，表示共有 T 组测试数据。

每组数据占一行，包含一个整数 n。

输出格式
每组数据输出一行，一个结果。

数据范围
1≤T≤100
,
1≤n≤109
输入样例：
2
1
64
输出样例：
1
2
*/

unordered_set<int> mm2;
unordered_set<int> mm3;

const int N = 1e9 + 10;
int t, n;

vector<int> vv;

void init() {
	for (int i = 1; i <= N; i++) {
		long long a = i * i;
		if (a >= N) break;
		mm2.insert(a);
	}

	for (int i = 1; i <= N; i++) {
		long long b = i*i* i;
		if (b >= N) break;
		mm3.insert(b);
	}

	for (auto& e : mm3) {
		if (mm2.count(e) != 0) {
			vv.push_back(e);
		}
	}
}

void solve() {
	cin >> n;
	int ans = 0;
	for (int i = 0; i < vv.size(); i++) {
		if (vv[i] <= n) ans++;
	}

	cout << ans << endl;
}

int main()
{
	cin >> t;
	init();
	while (t--) {
		solve();
	}
 
}
 